# 算法检测与兼容性
import hashlib
# 查看支持的算法
print("Guaranteed Algorithms:", hashlib.algorithms_guaranteed)
print("Available Algorithms:", hashlib.algorithms_available)

# 检查算法是否存在
if 'sha3_256' in hashlib.algorithms_available:
    print("SHA3-256 is supported")

'''通过hashlib可以实现：
- 数据完整性检验
- 安全密码存储
- HMAC签名（用于API认证等场景）
'''

# 高级应用与扩展
# 使用BLAKE2算法（高性能哈希）
# import hashlib

import hashlib

def blake2_hash(data, key=b""):
    """
    使用 BLAKE2 算法（支持密钥模式）
    :param data: 输入数据（字符串或字节）
    :param key: 可选密钥（用于生成 MAC）
    :return: 十六进制哈希字符串
    """
    if isinstance(data, str):
        data = data.encode('utf-8')
    
    # 初始化 BLAKE2 对象（可指定密钥）
    hasher = hashlib.blake2b(data, key=key.encode() if key else b"")
    return hasher.hexdigest()

# 测试 BLAKE2
data = "Sensitive Data"
print("BLAKE2 (无密钥):", blake2_hash(data))
print("BLAKE2 (带密钥):", blake2_hash(data, key="secret"))


